######################################################
#Comparison figure for WA 2014 General (Main Model vs GOP Candidate Only Model).
# When Women Run, Voters Will Follow (Sometimes): 
##Examining the Mobilizing Effect of Female Candidates in the 2014 and 2018 Midterm Elections 
#By Safarpour, Wyckoff Gaynor, Rouse, and Swers #
######################################################

#clean the environment.
rm(list=ls()) 

#Packages.
library(ggplot2)
library(cowplot) 

#setwd
setwd("/Users/ACS/Dropbox/When Women Run/Revision_PoliticalBehavior/R&R Part 2/Publication Docs/Replication Data and Code/")

#Data.
WA<- read.csv("WA2014GeneralEffectsRepublicanWomenOnly.csv", header=TRUE)
WA$Model<-c("Female Republican\nCandidates")


WAgeneral<- read.csv("WA2014GeneralEffectsMainModel.csv", header=TRUE)
WAgeneral$Model<-c("Main Model")

WAsum<-rbind(WA,WAgeneral)
WAsum$Registrant.Subgroup<-factor(c(1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8), levels=c(1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8),
                                  labels=c("Overall", "Women", "Men", "Gen. Z", "Millennials", "Gen. X", "Baby\nBoomers", "Silent Gen.",
                                           "Overall", "Women", "Men", "Gen. Z", "Millennials", "Gen. X", "Baby\nBoomers", "Silent Gen."), ordered = T)

#Figure.
pdf("WA2014ModelComparisonGeneralElections.pdf", width=9, height=5)
MP<-ggplot(d=WAsum, aes(Registrant.Subgroup, Effect*100, shape=Model, color=Model))+
  geom_point(position = "dodge",
             stat = "identity")+
  geom_errorbar(aes(ymin=`UpperCI`*100, ymax=`LowerCI`*100),  width=0.5)+
  geom_hline(yintercept=0, linetype="dashed", color="gray28")+
  labs(y="Percentage Point Difference in Predicted Probability of Voting", x="Registrant Subgroup")+
  theme_bw()+theme(axis.text=element_text(size=8.5), axis.title=element_text(size=10))
ggdraw(add_sub(MP, x=0,hjust=0,
               "Notes: Estimates calculated using separate models. Error bars are 95% confidence intervals calculated using simulation \nholding covariates at their observed values. Estimates from the main model computed using results from table C.15. \nEstimates for solely female Republican Candidates uses results from table C.16 (excludes district 1).", #add note.
               fontface = "italic", colour = "black", size=9)) #x=0.2 shifts it so its left justified.
dev.off()